The Internet of Things or “IoT” is a network of physical objects or “things” embedded with electronics, software, and sensors which enables these objects to collect and exchange data between themselves and between other computing devices. Example “things” include connected home appliances, sensors in automobiles, biochips, and like smart devices. It is estimated that by 2050, billions of IoT smart devices will be used for automating some of our daily routines and facilitating smarter interactions with electronic devices.
One of the first steps in installing a smart device often involves setting up the device, such as “on-boarding” the device to connect to a Wi-Fi network, or “provisioning” the device to a particular configuration or setup. Some IoT device manufacturers provide human control interfaces on the smart device that may be used for initial configuration. Other approaches utilize dedicated applications (such as smart phone applications) to communicate with the IoT device using proprietary messaging to push configuration details.
While on-boarding or provisioning one IoT device may be a relatively simple or straightforward operation, on-boarding and provisioning in the case of large scale devices installations (e.g. installing several hundreds/thousands of sensors or actuators such as light bulbs) is often a laborious, error-prone, and manual task, and may result in significant operational expenditure. Many approaches to onboarding and provisioning devices are based on configuring and installing one device at a time, which does not scale efficiently for larger installations.